package com.example.main;

import org.apache.commons.codec.binary.Base64;

import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Arrays;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class Main05_ASE {
    public static String keyStr = "34412002dde5a70fc376f378840e9145526e07aafb8592b917819b06db050a41";
    public final static String LOCK_CIPHER="lock_cipher";
    public final static Map<String, Cipher> cipherMap=new ConcurrentHashMap<>();

    public static void main(String[] args) throws Exception {
        String pass="pQWrpT2DpA65VwY90pnunBNqi9F34Y2ujZc+/Wwo607Q+zo9tLcnez/LY4KlGvW/4w52kCZV0HI2GmNLGhkGj9J+B1fvlJ5bpr9QmgluroxnE6zPnHSHkN+lSJvkDazoTb/OMz/huwUnNFhqDcikz0KUqBxWSOy2f8huOSnfa37pYMK6wNJXnxBS55h4R9ukYSr4qkv14cC5Z741OqeWiz8BNE2+w9mLXTbqOi+aPNFJwmOBaxuWocjxGvXZDyD3Bz70AOQ1C4WvY3NifO1quSn4CKGRPE1CZz4SNSEsNwoeAmPv5HJB1OZik7SxIvbWecJhszslUk5SG4ziPtJaSxCVKi91S4yqPlctP8D/NfzMY2Wd8WRMJKekWkw+Y1B/CqLxxW0EnSPuWqxwJeI52BZGmG46HI5ptLSnGuW3i2PcwVZjn7EZeASIzor0DohE6Q6w+S+I5S97Jh0v6eEtDV/tpMgA91QADpP4wWzPuXyvh3M/gF80WnEAHTMbdnjEkMku8Ga8c4u4qDDotaAJxlEITb5JbwslFnm1TF8zWgmS2Ttje0LlhBh1GF//oFkVVE2PyHHopOyv8lalZKBPIAN7i31pxrobZY9Z/UqyvYE/1sqU2HqYL8SJbo/YmF12JHyy/kkbZyr15pVIbGDHPMDQzmsw1lSs9K43exTBo/wAAPl7wdcaaVDLOJRs4jaqav6TpgRADQCNCsLEjIFujwCJrOJFeDKJRXgpGz/PBiIWM/c4fpy/ygMIwBiQAA3bb8jPgEQ9CrCV8uMzRUZi7xc9hhJOrFB0npdpnQutJnuz1R7f5JU+N3eaxR1CeBD0jP2yVHPjS7fDERZ1DrTEbayDSeW7EmoRiLPEk4KLJRXVSiB7JRtgGxqo2tfJzCXXsuo2/qMcv8/Cf8uN2cVZHDjk5Ac3qIe1ZPo6wk8yrlulnDCLsCsnIP0mtiVxIwiBNEhMl/uoAhkHyANxfLlbVmhoUKG0z1XDuBWNmJrveFaGbRXQkXDvhfVVvWI3NmhYlV2S+QbyGArZSaVsk+TPKX1gApm3toZ+ZwNP8qEiEEYHYbxOqAUdKHdMco+cOCoyc0PihzyjqEGoJ9LNZgenPNzH1dEOKdZPJuDavYeUZA+AqsDeGWT18s6Q+kUEVct3f3dZp0n5FlYdgsHxKZNW3CJKxWcVc+/1VG2wd5h51DbIOh6cp2RPKp/WBH07bX3J/XC95vGyXg4yH412cbdSF5/SbxNaiNHwfcvdZTCk+r7uGZxUedLbXoeRON8UlrcRFSuxctX8MdphTmmnhmh6VX91DytsAFfHgTCS8ZIS1XexhLLCKa+IGqLcgCnT6YB1loZ3Tq/jQIzGliN5m2JW9eZsNzLa58JJPi2KZfTXrqoRSWZjiuGBpHKjt+aDSXafAhRW4RB4Ig/EVxL7Gj4i3Me6hvq04sR/O/K7Xsdowi2SN7/kxcEo+q0gJwU6H+xxdNMvrADhKTo6/D/rhEpiELzHuCX+nYFjlECcL7qP1FzTSAhn36gozhkAO9ojvBRO+vj0U0yqtxH9G6Vod423CKppf0G2yrlu9eOiIS5/y5gwuYHeMlgsgrQpZtofLBqnQa0RgHb9q4UnP/itRFYg2lECdvLMQJaegf3UxjqUhmsCFFbhEHgiD8RXEvsaPiLcv3dWBguHkFIRG0oSnDbjy22Pim40XhovUJQAnseSLavVYXnzska/yNfTJUYYpsEHp7cQ8LC4yQL0TN3C143FhaHgpsKlF7FwAWM0O4LkKYXYqfiGW6X/3qItHJ0fu5L739m9yty8qK02iLP3/8ULzBFJZmOK4YGkcqO35oNJdp9kRHc4QxQU6SRbZWqc7WSP";

        String msg="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";
        String decrypt = decryptSingleton(keyStr, msg);
        String s = decryptSingleton(keyStr, pass);
        System.out.println(decrypt);
    }

    public static  String decrypt(String key, String data) throws Exception {
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(Arrays.copyOf(key.getBytes(), 16), "AES"));
        byte[] result = cipher.doFinal(Base64.decodeBase64(data.getBytes("UTF-8")));
        return new String(result);

//        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
//        byte[] bytes = keyStr.getBytes();
//        SecretKeySpec key = new SecretKeySpec(Arrays.copyOf(bytes, 16), "AES");
//        cipher.init(Cipher.DECRYPT_MODE, key);
//        return new String(cipher.doFinal(Base64.decodeBase64(value)), StandardCharsets.UTF_8);
    }

    public static  String decryptSingleton(String key, String data) throws Exception {
        Cipher cipher = cipherMap.get(key);
        if (cipher==null){
            synchronized (LOCK_CIPHER){
                if (cipher==null){
                    cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
                    cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(Arrays.copyOf(key.getBytes(), 16), "AES"));
                    cipherMap.put(key,cipher);
                }
            }
        }
        byte[] result = cipher.doFinal(Base64.decodeBase64(data.getBytes(StandardCharsets.UTF_8)));
        return new String(result);
    }
}
